package com.lang.service.impl;

import com.lang.dao.ProductDao;
import com.lang.dao.impl.ProductDaoImpl;
import com.lang.entity.Page;
import com.lang.entity.Product;
import com.lang.service.ProductService;

import java.util.List;

/*
 * @Date : 2024/3/13 9:43
 * @Created by Lang
 * @ProjectName : LclShop
 */
public class ProductServiceImpl implements ProductService {
    private ProductDao productDao = new ProductDaoImpl();

    @Override
    public List<Product> getProductByType(String tid) {
        return productDao.getProductByType(tid);
    }

    @Override
    public Page getPage(String tid, String currentPage) {
        //设置默认分页参数
        //当前页
        int current = 1;
        if (currentPage != null){
            current = Integer.parseInt(currentPage);
        }
        //每页显示记录数
        int pageSize = 4;

        //创建page实体
        Page page = new Page();
        //添加当前页参数
        page.setCurrentPage(current);
        //添加每页显示记录数
        page.setPageSize(pageSize);
        //获取总条数
        long total = productDao.getTotal(tid);

        //页数（总记录数/每页显示的记录数）
        int pageCount = (int) (total / pageSize);
        //如果出现有余数的情况就再加一页  13/4=3--1
        if (total % pageSize > 0){
            pageCount += 1;
        }
        page.setPageCount(pageCount);  //页总数
        //求起始行 因为到sql语句中查询需要 limit （起始行，显示的记录数）
        int startIndex = (current-1)*pageSize;
        List<Product> list = productDao.selectByPage(tid,startIndex,pageSize);
        page.setList(list);
        return page;
    }

    @Override
    public Product getProductById(String pid) {
        return productDao.getProductById(pid);
    }
}
